/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.celiosilva.simbanc.controller.cliente;

import com.celiosilva.simbanc.arquitetura.Sessao;
import com.celiosilva.simbanc.beans.ClienteJuridico;
import com.celiosilva.simbanc.business.ClienteBusiness;
import com.celiosilva.simbanc.business.seguranca.Permissao;
import com.celiosilva.simbanc.business.util.Sucesso;
import com.celiosilva.simbanc.exceptions.AcessoNegadoException;
import com.celiosilva.simbanc.exceptions.SimbancException;
import com.celiosilva.simbanc.util.Validador;
import com.celiosilva.simbanc.view.ClienteView;

/**
 *
 * @author celio@celiosilva.com
 */
public class SalvarClienteJuridicoController extends ClienteView{

    public SalvarClienteJuridicoController() throws AcessoNegadoException {
        Sessao.getInstance().validarAcesso(this);
        this.lblSobrenomeNomeFantasia.setText("Nome Fantasia:");
    }

    @Override
    protected String getTitulo() {
        return "Cadastrar Cliente Jurídico";
    }

    @Override
    protected String getRotuloIdentificador() {
        return "CNPJ:";
    }

    @Override
    protected String getFormatoMascaraIdentificador() {
        return "##.###.###/####-##";
    }

    @Override
    protected void salvarCliente() {
        try {
            Validador.validarPreenchimentoObrigatorio();
            Validador.validarPreenchimentoObrigatorio(this.txtNome, this.txtCidade);
            ClienteJuridico cliente = (ClienteJuridico) this.preencherBeanCliente(new ClienteJuridico());
            cliente.setCnpj(this.txtIdentificador.getText());
            Sucesso s = ClienteBusiness.getInstance().cadastrarCliente(cliente);
            this.mostrarAviso(s);
            this.limparTela();
        } catch (SimbancException ex) {
            this.mostrarAviso(ex);
        }
    }

    @Override
    protected void consultarCliente() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected void bloquearCliente() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected void cancelarCliente() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    protected void reativarCliente() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public Permissao getPermissaoAtribuida() {
        return Permissao.CADASTRAR_CLIENTE_JURIDICO;
    }

}
